#ifndef CVECTOR3F_H
#define CVECTOR3F_H

#include "cpoint3f.h"

class CPoint3f;

class CVector3f
{
public:
    CVector3f();
    CVector3f(float x, float y, float z);
    CVector3f(CPoint3f, CPoint3f);

    void		normalize();

    void		operator=(const CVector3f &p);

    CPoint3f	operator+ (CPoint3f p);
    CPoint3f	operator- (CPoint3f p);
    CVector3f	operator* (float c);
    CVector3f	operator/ (float c);
    CVector3f	operator- (CVector3f v);
    float		operator* (CVector3f v);
    CVector3f	operator+ (CVector3f v);
    CVector3f	crossProduct(CVector3f P);
    float		length();
    float		length2();
    float		angle(CVector3f V);

    float m_fX, m_fY, m_fZ;
};

#endif // CVECTOR3F_H
